/* 
 * File:   Algorithm.h
 * Author: guilhermemg
 *
 * Created on 14 de Fevereiro de 2012, 13:09
 */

#ifndef ALGORITHM_H
#define	ALGORITHM_H
#include <cv.h>
#include <highgui.h>
#include <iostream>

using namespace std;

class Algorithm {
public:
    Algorithm();
    Algorithm(const Algorithm& orig);
    virtual ~Algorithm();
    virtual void calculates() = 0; // abstract method
    double getValue();
    IplImage* getImage();
    string toString(); // abstract method
    void setImage(IplImage* imgPath);
    string getName();
    string getLargeName();
private:
    double value;
    IplImage* image;
    string nameAlgorithm;
    string largeName; // large name of algorithm
protected:
    void setValue(double v);
    void setName(string n);
    void setLargeName(string ln);
};

#endif	/* ALGORITHM_H */

